Tipps zur Optimierung von SQL-Server-Indizes

Der SQL-Server bietet mehrere Tools, mit denen man die Performance überwachen, einstellen und optimieren kann. Im Folgenden werden wir uns damit beschäftigen, wie man die SQL-Servertools nutzen kann um den Einsatz von Indizes zu optimieren.

Allgemeines zur Indizierung

Indizes sind einer der wichtigsten Faktoren hinsichtlich der Leistungsfähigkeit einer Datenbank. Aufgrund der Komplexität dieses Themas soll hier nur ein Überblick über die Grundlagen gegeben werden, mit diesem Thema befassen sich viele gute Bücher, die ausführliche Hintergrundinformationen bieten. Die beiden hier betrachteten SQL-Servertypen sind vom Typ clustered und nonclustered. Bei der Entscheidung, welche Art von Index verwendet werden soll, empfiehlt es sich Datentyp und Matrix zu beachten. Ebenso muss Art und Frequenz zukünftiger Abfragen berücksichtigt werden.

Welche Art von Index?

Bei Datensätzen mit einer hohen Anzahl gleicher Werte, auf die in einer bestimmten Reihenfolge zugegriffen wird, eignet sich der clustered Index am besten. Der SQL-Server sortiert die Datenreihen in aufsteigender (Standardeinstellung) oder absteigender Reihenfolge, somit können sie schnell wiedergefunden werden. Aufgrund dieses Vorgangs kann für jede Tabelle nur ein clustered Index erstellt werden.

Umgekehrt bedeutet dies, dass man für Datensätze mit vielen verschiedenen Werten eher einen Index des Typs nonclustered verwendet. Pro Tabelle können hier bis zu 249 Indizes erstellt werden, auch wenn diese Zahl in der Praxis kaum vorkommen dürfte.

Wenn in einer Tabelle Primärschlüssel vorkommen, erstellt der SQL-Server automatisch einen einzelnen Cluster-Index, bei dem diese Schlüssel miteinbezogen werden (Standardeinstellung). Die Eindeutigkeit des Primärschlüssels wird durch die Erstellung des Index für die Spalte(n) gewährleistet. Bei der Erstellung von Relationen mit Fremdschlüsseln empfiehlt es sich, einen nonclustered Index zu erstellen – vor allem wenn dieser oft für Joins verwendet werden soll. Tabellen mit einem clustered Index halten die Relation zwischen den Datensätzen über eine verknüpfte Liste aufrecht (z.B. auf Leaf- oder Nonleaf-Ebene). Umgekehrt wird der SQL-Server bei einer Tabelle ohne clustered Index die Datensätze in einem Heap speichern.

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Tipps zur Optimierung von SQL-Server-Indizes

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *